System.Collections.ObjectModel.KeyedCollection<TKey,TItem>.ChangeItemKey メソッド
この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。
このメソッドは ChangeItemKey(TItem, TKey) 、埋め込まれたキーを変更しません。参照ディクショナリに保存されている item
キーを置き換えるだけです。 したがって、埋め込まれているキーと異なる場合newKey
は、返されるitem
GetKeyForItemキーを使用してアクセスitem
することはできません。
ルックアップ ディクショナリがない場合、 KeyedCollection<TKey,TItem> このメソッドは何も実行しません。
a 内のすべてのキーは KeyedCollection<TKey,TItem> 一意である必要があります。 キーを指定することはできません null
。
このメソッドは、O(1) 操作です。
実装者向けの注意事項
アイテムに埋め込まれているキーを変更する前に、このメソッドを呼び出して、ルックアップ ディクショナリ内のキーを更新する必要があります。 ディクショナリ作成のしきい値が -1 の場合、このメソッドを呼び出す必要はありません。
メソッドを ChangeItemKey 派生クラスのパブリック メソッドとして公開しないでください。 このメソッドを誤用すると、ルックアップ ディクショナリが項目キーと同期されません。 たとえば、キー null
を設定して別の値に設定すると、アイテムの複数のキーがルックアップ ディクショナリに追加されます。 このメソッドを内部で公開して、変更可能な項目キーを許可します。項目のキーが変更されると、このメソッドを使用してルックアップ ディクショナリ内のキーが変更されます。
.NET